package com.prevpn.service;

import com.prevpn.common.CommonResponse;
import com.prevpn.dto.AssignRoleByNameDTO;
import com.prevpn.dto.UserCreateDTO;
import com.prevpn.vo.UserDetailVO;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;


public interface UserService {
    /**
     * 新增用户
     */
    CommonResponse<Map<String, Object>> createUser(UserCreateDTO dto);

    /**
     * 通过邮箱查询用户详细信息
     */
    CommonResponse<UserDetailVO> queryUserByEmail(String directoryDomain, String email);

    /**
     * 查询用户列表（支持分页、递归、模糊搜索）
     */
    CommonResponse<Map<String, Object>> queryUserList(Map<String, Object> body);

    /**
     * 基于用户名查询用户详情
     */
    CommonResponse<UserDetailVO> queryUserByName(String directoryDomain, String name);

    /**
     * 关联角色（基于用户名）
     */
    CommonResponse<Map<String, Object>> assignRoleByName(AssignRoleByNameDTO dto);

    /**
     * 批量删除用户 - 基于名称
     */
    CommonResponse<Object> bulkDeleteUserByNameList(String directoryDomain, List<String> nameList);

    /**
     * 编辑用户 - 基于名称
     */
    CommonResponse<Object> updateUserByName(Map<String, Object> body);
}
